package job.sanyi;

import java.util.Arrays;

/**
 * Author: Zhang Dongwei
 * Date: 2023/8/20 15:03
 */
public class sy3 {
    public static void main(String[] args) {
        int[] nums = {1, 2, 3};
        int k = 3;
        System.out.println(countPartitions(nums, k));
    }


    public static int countPartitions1(int[] nums, int k) {
        int res = 0;
        int sum = 0;
        int left = 0;
        Arrays.sort(nums);
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
        }
        for (int i = 0; i < nums.length - 1; i++) {
            left += nums[i];
            if (left >= k && (sum - left) >= k) {
                res++;
            }
        }
        return res * 2;
    }

    public static int countPartitions(int[] nums, int k) {
        int res = 0;
        int sum = 0;
        Arrays.sort(nums);
        for (int i = 0; i < nums.length; i++) {
            sum += nums[i];
        }
        int r = 0, l = 0;
        int part = 0;
        while (l <= r && r < nums.length){
            for (int i = l; i <= r; i++){
                part += nums[l];
            }
            if (part >= k && (sum - part) >= k){
                res ++;
            }
            if (part <= k){
                r ++;
                l = 0;
            }else {
                l ++;
            }
        }
//        if (sum / 2 < k) return 0;
//        for (int r = 0; r < nums.length; r++) {
//            int part = 0;
//            int l = 0;
//            while (l <= r){
//                for (int i = l; i <= r; i++){
//                    part += nums[l];
//                }
//
//                if (part >= k && (sum - part) >= k){
//                    res ++;
//                    l ++;
//                }else {
//                    r++;
//                    l = 0;
//                    part = 0;
//                }
//            }
//        }
        return res;
    }
}
